/*
 * SABaseContainer.h
 *
 *  Created on: 2010-06-04
 *      Author: NONO
 */

#ifndef __SABASECONTAINER_H__
#define __SABASECONTAINER_H__

// INCLUDES
#include <coecntrl.h>

// FORWARD DECLARATION
class CSAAppUi;

/**
*  CSABaseContainer  container control class.
*  
*/
class CSABaseContainer : public CCoeControl
{
    public: // Constructors and destructor
        
        /**
        * EPOC default constructor.
        * @param aRect Frame rectangle for container.
        */
        void ConstructL(const TRect& aRect);
        
        CSABaseContainer(CSAAppUi& aAppUi);

        /**
        * Destructor.
        */
        ~CSABaseContainer();

    public: // New functions

        void RedrawNow();

        virtual void ChangeViewMenuL(TInt aResourceId) = 0;
        void ChangeViewMenuL(TUid aUid = KNullUid, TInt aResourceId = 0);
        inline CSAAppUi& SAAppUi();

    public: // Functions from base classes

       /**
        * From CCoeControl,Draw.
        */
        virtual void Draw(const TRect& aRect) const;
        
    private: // Functions from base classes

    public:
        
        CSAAppUi& iSAAppUi;
};

    // ---------------------------------------------------------
    // Inline member accessors
    // ---------------------------------------------------------

CSAAppUi& CSABaseContainer::SAAppUi()
{
        return iSAAppUi;
}
    
#endif /* __SABASECONTAINER_H__ */
